/* 用户相关api */
import {
	request,
} from "@/utils/request";

/**
 * getFriendListApi IM_分页查询好友列表
 * @params	{Number}				page				页数
 * @params	{Number}				limit				数量
 * @params	{Number}				mainAccountID		当前用户Id
 */
export const getFriendListApi = (params) =>
	request({
		params: {
			_gp: 'imFriendList',
			_mt: 'getFriendListPage',
			...params
		}
	});

/**
 * getGroupListApi IM_分页查询群组
 * @params	{Number}				page				页数
 * @params	{Number}				limit				数量
 * @params	{Number}				uid					当前用户Id
 * @params	{Number}				gid					群组Id
 * @params	{Number}				cid					创建人Id
 * @params	{Number}				groupName			群组名称
 * @params	{Number}				keyWord				搜索关键字
 */
export const getGroupListApi = (params) =>
	request({
		params: {
			_gp: 'imGroup',
			_mt: 'getImGroupPage',
			...params
		}
	});

/**
 * getGroupUserApi IM_分页查询群组用户
 * @params	{Number}				page				页数
 * @params	{Number}				limit				数量
 * @params	{Number}				gid					群组Id
 * @params	{Number}				uTypes				群组用户类型 字符串数组 '[0, 1, 2]'
 */
export const getGroupUserApi = (params) =>
	request({
		params: {
			_gp: 'imGroupUser',
			_mt: 'getGroupUserPage',
			...params
		}
	});

/**
 * getGroupNoticeApi IM_根据条件分页查询群公告
 * @params	{Number}				page				页数
 * @params	{Number}				limit				数量
 * @params	{Number}				gid					当前群Id
 */
export const getGroupNoticeApi = (params) =>
	request({
		params: {
			_gp: 'imGroupAnnouncement',
			_mt: 'getImGroupAnnouncementPage',
			...params
		}
	});

/**
 * getApplyApi IM_根据条件分页查询好友（群组）申请
 * @params	{Number}				page				页数
 * @params	{Number}				limit				数量
 * @params	{Number}				uid					当前用户Id
 * @params	{Number}				receiveId			接收人Id
 * @params	{Number}				sendId				申请人Id
 * @params	{Number}				sourceType			好友来源，1：账号查询；2：条件搜索；3：来自群聊；4：来自空间；5：来自广场
 * @params	{Number}				state				申请状态，0:待处理;1:同意;2:拒绝;3:忽略;
 * @params	{Number}				type				申请类型，1：添加好友；2：加入群组；
 */
export const getApplyApi = (params) =>
	request({
		params: {
			_gp: 'imFriendApply',
			_mt: 'getAllFriendApplyPage',
			...params
		}
	});

/**
 * putRemarksApi IM_修改好友备注
 * @params	{Number}				id					好友列表记录Id
 * @params	{String}				nameRemark			好友备注
 */
export const putRemarksApi = (params) =>
	request({
		params: {
			_gp: 'imFriendList',
			_mt: 'uppFriendNameRemark',
			...params
		}
	});

/**
 * delFriendApi IM_删除好友列表
 * @params	{Number}				uid					用户Id
 * @params	{String}				ids					好友记录ID，值为数组字符串,[1,2,3,4]
 */
export const delFriendApi = (params) =>
	request({
		params: {
			_gp: 'imFriendList',
			_mt: 'delFriendList',
			...params
		}
	});

/**
 * postApplyApi IM_新增、修改好（群组）友申请
 * @params	{Number}				id					主键ID，不传新增，传值修改
 * @params	{Number}				sendId				申请人（发送人）ID（新增时，必填）
 * @params	{Number}				receiveId			接收人ID（新增时，必填）
 * @params	{Number}				sourceType			好友来源，1：账号查询；2：条件搜索；3：群聊（新增时，必填）
 * @params	{Number}				state				申请状态，0:待处理;1:同意;2:拒绝;3:忽略;
 * @params	{Number}				type				申请类型，1：添加好友；2：加入群组；（新增时，必填）
 * @params	{Number}				remark				验证信息
 * @params	{Number}				nameRemark			备注名称
 * @params	{Number}				groupId				群组ID（申请类型是加入群组时，必填）
 * @params	{Number}				invitePeople		邀请人
 */
export const postApplyApi = (params, loading = {}) =>
	request({
		params: {
			_gp: 'imFriendApply',
			_mt: 'addUppFriendApply',
			...params
		},
		loading
	});

/**
 * postGroupApi IM_新增、修改群组
 * @params	{Number}				id					群组ID
 * @params	{Number}				groupName			群组名称
 * @params	{Number}				createUser			群组创建人
 * @params	{Number}				groupImg			群组头像
 * @params	{Number}				groupUsers			群组用户ID数组字符串，例如[1,2,3,4,5]
 * @params	{Number}				introduce			群组介绍
 * @params	{Number}				remark				群组备注
 */
export const postGroupApi = (params, loading = {}) =>
	request({
		params: {
			_gp: 'imGroup',
			_mt: 'addUppImGroup',
			...params
		},
		loading
	});
